perm filename PUBMAC.DFS[XGP,TES] blob
sn#027200 filedate 1973-02-22 generic text, type T, neo UTF8
00100 .!SPACES ← "#####################################################" ;
00200 .!HYPHENS ← "--------------------------------------------------------------" ;
00300 .MACRO FRACTION(NUM, DEN) ; ⊂
00400 .TURN ON "{↑↓[]" ;
00500 . N ← "NUM" ; D ← "DEN" ;
00600 . LN ← LENGTH(N) ; LD ← LENGTH(D) ;
00700 . IF LN > LD THEN START D ← !SPACES[1 TO (LN-LD) DIV 2] & D ; LMAX ← LN END ;
00800 . IF LD > LN THEN START N ← !SPACES[1 TO (LD-LN) DIV 2] & N ; LMAX ← LD END ;
00900 . "↑[{N⎇]&↓[{D⎇]&[{(!HYPHENS[1 TO LMAX])⎇]" ; TURN OFF ; ⊃
01000 .MACRO SCRIPTS ⊂ TURN ON "↑↓[]&_∪" ⊃
01100 .MACRO GREEKS ⊂ TURN ON "{∂\αβ#←→∞" ⊃
01200 .MACRO FORMAT ⊂ SCRIPTS ; GREEKS ⊃
01300 .MACRO STANDARD FRONT(SECPRINT, SSPRINT, PAGEPRINT, INDEXCHAR, APPPRINT) ⊂
01400 .IF "SECPRINT" ≠ NULL THEN
01500 . START
01600 . COUNT SECTION PRINTING "SECPRINT"
01700 . MACRO SEC(NAME) ⊂ SECNAME ← SSNAME ← NULL ;
01800 . NEXT PAGE; NEXT SECTION;
01900 . BEGIN
02000 . FORMAT CENTER
02100 ↓_SECTION {!⎇_↓
02200 . SKIP
02300 ↓_NAME_↓
02400 . SKIP 3
02500 . SECNAME ← "NAME"
02600 . SEND CONTENTS ⊂ SKIP 1;
02700 {SECTION!⎇\ NAME{BREAK ⊃
02800 . END ⊃
02900 . END ;
03000 .IF "SSPRINT" ≠ NULL THEN
03100 . START
03200 . SUBBING ← "YES"
03300 . COUNT SUBSECTION IN SECTION PRINTING "SSPRINT"
03400 . MACRO SS(NAME) ⊂ SSNAME←"NAME"; IF LINES<7 THEN NEXT PAGE; NEXT SUBSECTION;
03500 . START
03550 . GREEKS
03600 . FILL SKIP 2
03700 . SEND CONTENTS ⊂
03800 \\{SUBSECTION!⎇\NAME\∞ ∞.∞ → {PAGE!⎇
03900 . ⊃
04000 . END
04100 {!⎇. ↓_NAME_↓
04200 . SKIP
04300 . NOFILL ; ⊃
04400 . END
04500 .ELSE SUBBING ← "NO"
04600 .IF "PAGEPRINT" ≠ NULL THEN COUNT PAGE PRINTING "PAGEPRINT"
04603 .IF "APPPRINT" ≠ NULL THEN
04606 . START
04609 . MACRO APP(NAME) ⊂ SECNAME←SSNAME←NULL
04612 . NEXT PAGE; NEXT SECTION;
04615 . BEGIN
04618 . FORMAT CENTER
04621 ↓_APPENDIX {!⎇ _↓
04624 . SKIP
04627 ↓_NAME_↓
04630 . SKIP 3
04633 . SECNAME←"NAME"
04636 . SEND CONTENTS ⊂ SKIP 1
04639 {SECTION!⎇\NAME{BREAK⊃
04642 . END⊃
04645 . END;
04700 .INDEXING ← IF "INDEXCHAR"=NULL THEN "*" ELSE "INDEXCHAR" ;
04800 .IF "INDEXCHAR" ≠ NULL THEN
04900 . START
05000 . AT INDEXING PHRASE INDEXING ⊂
05100 . "PHRASE" ; TURN ON "{"
05200 . SEND INDEX ⊂
05300 <<{PAGE⎇#PHRASE#{ ⊃
05400 . TURN OFF ⊃
05500 . END
05600 .ELSE INDEXING ← "NO"
05700 .INSERT CONTENTS
05800 .PORTION MAINPORTION
05900 .SECNAME ← SSNAME ← NULL
06000 . ⊃
06100 .
06200 .MACRO STANDARD BACK ⊂
06300 .SECTION! ← SUBSECTION! ← SECNAME ← SSNAME ← NULL
06350 .SECTION←SUBSECTION←0;
06400 .IF INDEXING ≠ "NO" THEN
06500 . START
06600 . PORTION INDEX
06700 . UPWORD ← WASWORD ← WASLETT ← WASPG ← NULL ;
06800 . AT "<<" PGNO "#" PHRASE "#" ⊂ UPWORD ← ↑"PHRASE";
06850 . LETT ← UPWORD[1] ;
06900 . IF LETT ≠ WASLETT THEN IF LINES<6 THEN NEXT PAGE ELSE SKIP 2 ;
07000 . IF UPWORD ≠ WASWORD THEN START BREAK ⎇PHRASE { END
07100 . ELSE IF "PGNO" ≠ WASPG THEN ⎇, PGNO{ ;
07200 . WASPG ← "PGNO" ; WASLETT ← LETT ; WASWORD ← UPWORD ; ⊃
07300 . NOFILL FORMAT INDENT 0,0 PREFACE 0
07400 ←INDEX
07500 . SKIP 4
07600 . SECNAME ← "INDEX"
07700 . RECEIVE "##"
07800 . SECNAME ← NULL
07900 . END
08000 .PORTION CONTENTS
08010 .COUNT SECTION;
08020 .COUNT SUBSECTION IN SECTION;
08100 .COUNT PAGE PRINTING "i"
08200 .FILL NOJUST FORMAT CRBREAK
08300 .INDENT 0,30,10 PREFACE 1 TABS 8,13,23,30,33,36,39,42,45,48,51,54,57,60,63
08400 ←↓_T A B L E O F C O N T E N T S_↓
08500 .SKIP 3
08600 .IF SUBBING THEN
08700 ←SECTION→PAGE
08800 .SKIP 2
08900 .SECNAME ← "TABLE OF CONTENTS"
09000 .RECEIVE
09100 . ⊃